package cn.iocoder.yudao.module.member.dal.dataobject.order;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.util.Date;


/**
 * 用户证书订单
 */
//@TableName("member_certificate_order")
//@KeySequence("member_certificate_order_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@TableName("apple_device")
@KeySequence("apple_device_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MemberCertificateOrderDo extends BaseDO {

    @Schema(description = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1024")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @Schema(description = "设备订单编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "OD123")
    private String certificateOrderCode;

    /**
     * 0:公共池 1:独立池
     */
    @Schema(description = "购买类型0:公共池 1:独立池 2:用户上传", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "OD123")
    private String poolType;


    /**
     *
     *版本类型编码
     */
    private String versionTypeCode ;
    /**
     *
     *版本类型编码
     */
    private String versionTypeName ;

    /**
     *
     设备udid
     */
    private String udid ;

    /**
     *
     是否掉签
     */
    private Boolean dropFlag = Boolean.FALSE ;


//    /**
//     * 描述文件地址
//     */
//    private String profileUrl;



//    /**
//     * 用户账号信息
//     */
//    private String userAccount ;

    /**
     * 购买人
     */
    private Long userId;

    /**
     * p12地址
     */
    private String p12Url;

    /**
     * p12密码
     */
    private String p12Password;

    /**
     * 备注
     */
    private String remark;

    /**
     * 年
     */
    private int year;

    /**
     * 月
     */
    private int month;


    /**
     * 设备来源 curStation 本站   sync:苹果   userUpload:用户上传
     */
    private String sourceFlag;

    /**
     * 苹果设备id
     */
    private String deviceId;
    /**
     * 苹果证书id
     */
    private String cerId;
    /**
     * 苹果证书编码
     */
    private String cerNumber;
    /**
     * 苹果开发者账号id
     */
    private Long appAccountId;
    /**
     * 账号类型（公共 个人）
     */
    private String accountType;
    /**
     * 质保类型（公共 个人）
     */
    private String warrantyType;
    /**
     * 类别 预约秒出
     */
    private String classType;
    /**
     * 版本 摆烂 躺平 加强
     */
    private String orderVersion;
    /**
     * 证书名称
     */
    private String cerName;

    /**
     * 描述文件路径
     */
    private String mpUrl;

    /**
     * 设备类型
     */
    private String deviceModel;

    /**
     * 购买类型 新购 newPurchase  质保 warranty
     */
    private String buyType;

    /**
     * 售后时长
     */
    private Integer timeout;

    private String userName;

    /**
     * 证书状态
     */
    private String cerStatus;

    /**
     * 证书过期时间
     */
    private Date cerExpireTime;
    /**
     * 对应卡密
     */
    private String cardSecurity;
    /**
     * 其他系统来源的证书 id
     */
    @Schema(description = "sysId", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1024")
    private Long sysId;
    /**
     * 其他系统来源的证书 id string类型
     */
    @Schema(description = "sysIdString", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1024")
    private String sysIdString;

    /**
     * 文件是否同步 默认否
     */
    @Schema(description = "p12UrlFlag", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1024")
    private Boolean p12UrlFlag = Boolean.FALSE;

    @Schema(description = "mpUrlFlag", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1024")
    private Boolean mpUrlFlag = Boolean.FALSE;
    @Schema(description = "主系统url", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1024")
    private String mainUrl;
}
